package com.ztl.leetcode.SwordFingerOffer;

/**
 * @author @ztl
 * @ClassName:ReplaceSpaces_05
 * @Package:com.ztl.leetcode.SwordFingerOffer
 * @date 2023年05月09日 20:50
 * @description: 请实现一个函数，把字符串 s 中的每个空格替换成"%20"。 时间复杂度O(n) 空间复杂度O(n)
 * @version: 1.0
 */
public class ReplaceSpaces_05 {
    public String replaceSpace(String s) {
        //使用StringBuilder存储元素，效率比String和StringBuffer高很多
        //String频繁改变值会频繁创建StringBuilder对象造成大量开销
        //StringBuffer的方法使用了同步锁，效率底下
        StringBuilder sb = new StringBuilder();
        //将String转换为char[]字符数组，遍历每一个字符
        for(char c:s.toCharArray()){
            //遇到空格字符则往StringBuilder添加“%20”,否则原样添加
            if(c==' '){
                sb.append("%20");
            }else{
                sb.append(c);
            }
        }

        return sb.toString();
    }
}
